# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
# Contributor: David Runge <dvzrv@archlinux.org>
# Contributor: Aleksey Filippov <sarum9in@gmail.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Thomas S Hatch <thatch45@gmail.com>
# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>

pkgbase='protobuf'
pkgname=('protobuf' 'python-protobuf')
pkgver=3.17.3
pkgrel=1
pkgdesc="Protocol Buffers - Google's data interchange format"
arch=('x86_64')
url='https://developers.google.com/protocol-buffers/'
license=('BSD')
depends=('gcc-libs' 'glibc' 'zlib')
makedepends=('unzip' 'python-setuptools')
source=("https://github.com/protocolbuffers/$pkgname/releases/download/v$pkgver/$pkgname-all-$pkgver.tar.gz")
sha512sums=('4a5e2ba080310492eb4fd8f6d89d46591254544f4fc1ef1b6a3a285aa12089e3124ff41994455b4b77e79eb1e993c68ec9c54e13a78052b9fb29b8cbf1dc67e1')

prepare() {
  cd "$pkgbase-$pkgver"
  autoreconf -vfi

# Don't fail tests on deprecation warnings
  sed -e "/DeprecationWarning/d" -i python/google/protobuf/internal/*test.py
}

build() {
  cd "$pkgbase-$pkgver"
  ./configure --prefix=/usr
  make
  cd python
  python setup.py build --cpp_implementation
}

check() {
  cd "$pkgbase-$pkgver"
  make check

  cd python
  python setup.py test
}

package_protobuf() {
  replaces=('protobuf-cpp')
  provides=('libprotoc.so' 'libprotobuf.so' 'libprotobuf-lite.so')

  cd "$pkgbase-$pkgver"
  make DESTDIR="$pkgdir" install

  install -vDm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
  install -vDm 644 editors/protobuf-mode.el \
    -t "$pkgdir/usr/share/emacs/site-lisp/"
  install -vDm 644 editors/proto.vim \
    -t "${pkgdir}/usr/share/vim/vimfiles/syntax"
}

package_python-protobuf() {
  pkgdesc='Python 3 bindings for Google Protocol Buffers'
  depends=('python' 'python-six' "protobuf=$pkgver")

  local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
  cd "$pkgbase-$pkgver"
  (
    cd python
    PYTHONPATH="$PWD/build/lib.linux-$CARCH-${python_version}:PYTHONPATH" \
    python setup.py install --skip-build \
                            --cpp_implementation \
                            --optimize=1 \
                            --root="$pkgdir"
  )
  install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
